﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using StuMngVan.Dals;
using StuMngVan.Entities;

namespace StuMngVan
{
    public partial class FormAddScore : Form
    {
        public FormAddScore()
        {
            InitializeComponent();
        }

        private void FormAddScore_Load(object sender, EventArgs e)
        {
            //DataTable dtStudents = Dal4Score.GetStudents();
            //cboStudent.DataSource = dtStudents;
            //cboStudent.DisplayMember = "StudentName";
            //cboStudent.ValueMember = "StudentID";
            
            //DataTable dtCourses = Dal4Score.GetCourses();
            //cboCourse.DataSource = dtCourses;
            //cboCourse.DisplayMember = "CourseName";
            //cboCourse.ValueMember = "CourseID";

            ///【闻祖东 2013-4-2-230120】8行代码经过封装之后则只有2行代码了。着重理解封装的意义。
            ///这个地方封装的代码行数可能只有4行，在以后的代码里面很可能就不只是4行这么简单了。
            ///【高月 2013-4-2-233827】已读
            CommonUtil.BindData4ComboBox(cboStudent, Dal4Score.GetStudents(), "StudentName", "StudentID");
            CommonUtil.BindData4ComboBox(cboCourse, Dal4Score.GetCourses(), "CourseName", "CourseID");
        }



        private void btnAdd_Click(object sender, EventArgs e)
        {
            int iStudentID = Convert.ToInt16(cboStudent.SelectedValue);
            int iCourseID = Convert.ToInt16(cboCourse.SelectedValue);
            int iScore = Convert.ToInt16(txtScore.Text);
            string sRemark = txtRemark.Text;

            //if (Dal4Score.InsertScore(iStudentID, iCourseID, iScore, sRemark) == true)
            //{
            //    MessageBox.Show(string.Format("恭喜你添加学生【{0}】的【{1}】成绩信息成功！", cboStudent.Text, cboCourse.Text));
            //}
            //else
            //{
            //    MessageBox.Show("当前已经存在此条记录或其他原因，插入失败。");
            //}

            ///【闻祖东 2013-4-2-230612】当你的条件表达式里面只有一句话且一行代码的时候，那么这个时候的大括号可以不需要了。
            ///从代码简洁性的要求上来说，这本身并不影响可读性，并且还简化了可读性。
            if (Dal4Score.InsertScore(iStudentID, iCourseID, iScore, sRemark) == true)
                MessageBox.Show(string.Format("恭喜你添加学生【{0}】的【{1}】成绩信息成功！", cboStudent.Text, cboCourse.Text));
            else
                MessageBox.Show("当前已经存在此条记录或其他原因，插入失败。");
            
            this.Close();
        }
    }
}
